HAL JPEG IRQ handler and callbacks functions migration ¶
This section provides information about HAL JPEG interrupt handling and callbacks for STM32 HAL1 to HAL2 migration.
HAL JPEG callback functions ¶
|
HAL1 |
HAL2 |
|
|---|---|---|
|
Function prototype |
HAL_JPEG_InfoReadyCallback(JPEG_HandleTypeDef *hjpeg,
JPEG_ConfTypeDef *pInfo)
HAL_JPEG_EncodeCpltCallback(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_DecodeCpltCallback(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_ErrorCallback(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_GetDataCallback(JPEG_HandleTypeDef *hjpeg,
uint32_t NbDecodedData)
HAL_JPEG_DataReadyCallback(JPEG_HandleTypeDef *hjpeg,
uint8_t *pDataOut,
uint32_t OutDataLength)
|
HAL_JPEG_InfoReadyCallback(hal_jpeg_handle_t *hjpeg)
HAL_JPEG_EncodeCpltCallback(hal_jpeg_handle_t *hjpeg)
HAL_JPEG_DecodeCpltCallback(hal_jpeg_handle_t *hjpeg)
HAL_JPEG_ErrorCallback(hal_jpeg_handle_t *hjpeg)
HAL_JPEG_GetDataCallback(hal_jpeg_handle_t *hjpeg,
uint32_t nb_decoded_data_byte)
HAL_JPEG_DataReadyCallback(hal_jpeg_handle_t *hjpeg,
const uint8_t *p_data_out,
uint32_t out_data_length_byte)
|
|
Example usage |
HAL_StatusTypeDef jpeg_info_status;
void HAL_JPEG_InfoReadyCallback(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pInfo)
{
/* the JPEG decoding such as image width, height, color space, and subsampling
are available in the pInfo structure and it can be used by the user */
}
|
HAL_StatusTypeDef jpeg_info_status;
hal_jpeg_config_t info;
void HAL_JPEG_InfoReadyCallback(JPEG_HandleTypeDef *hjpeg)
{
/* The HAL_JPEG_InfoReadyCallback informs the user that the JPEG information are
ready and can be retrieved by calling the HAL_JPEG_GetLastDecodeInfo function */
jpeg_info_status = HAL_JPEG_GetLastDecodeInfo(hjpeg, &info);
}
|
HAL JPEG register callback ¶
|
HAL1 |
HAL2 |
|
|---|---|---|
|
Function prototype |
In HAL1, a single function is used to register callbacks for JPEG events : HAL_JPEG_RegisterCallback(JPEG_HandleTypeDef *hjpeg,
HAL_JPEG_CallbackIDTypeDef CallbackID,
pJPEG_CallbackTypeDef pCallback);
HAL_JPEG_RegisterInfoReadyCallback(JPEG_HandleTypeDef *hjpeg,
pJPEG_InfoReadyCallbackTypeDef pCallback)
HAL_JPEG_RegisterGetDataCallback(JPEG_HandleTypeDef *hjpeg,
pJPEG_GetDataCallbackTypeDef pCallback)
HAL_JPEG_RegisterDataReadyCallback(JPEG_HandleTypeDef *hjpeg,
pJPEG_DataReadyCallbackTypeDef pCallback)
|
In HAL2, separate callbacks were provided for each JPEG event : HAL_JPEG_RegisterEncodeCpltCallback(hal_jpeg_handle_t *hjpeg, hal_jpeg_cb_t callback)
HAL_JPEG_RegisterDecodeCpltCallback(hal_jpeg_handle_t *hjpeg, hal_jpeg_cb_t callback)
HAL_JPEG_RegisterErrorCallback(hal_jpeg_handle_t *hjpeg, hal_jpeg_cb_t callback)
HAL_JPEG_RegisterInfoReadyCallback(hal_jpeg_handle_t *hjpeg,
hal_jpeg_cb_t callback)
HAL_JPEG_RegisterGetDataCallback(hal_jpeg_handle_t *hjpeg,
hal_jpeg_get_data_cb_t callback)
HAL_JPEG_RegisterDataReadyCallback(hal_jpeg_handle_t *hjpeg,
hal_jpeg_data_ready_cb_t callback)
|
|
Example usage |
JPEG_HandleTypeDef hjpeg;
HAL_JPEG_RegisterInfoReadyCallback(&hjpeg, USER_JPEG_InfoReady_Callback);
HAL_JPEG_RegisterGetDataCallback(&hjpeg, USER_JPEG_GetData_Callback);
HAL_JPEG_RegisterDataReadyCallback(&hjpeg, USER_JPEG_DataReady_Callback);
HAL_JPEG_RegisterCallback(&hjpeg, USER_JPEG_EncodeComplete_Callback);
HAL_JPEG_RegisterCallback(&hjpeg, USER_JPEG_DecodeComplete_Callback);
HAL_JPEG_RegisterCallback(&hjpeg, USER_JPEG_Error_Callback);
|
hal_jpeg_handle_t hjpeg;
HAL_JPEG_RegisterInfoReadyCallback(&hjpeg, USER_JPEG_InfoReady_Callback);
HAL_JPEG_RegisterGetDataCallback(&hjpeg, USER_JPEG_GetData_Callback);
HAL_JPEG_RegisterDataReadyCallback(&hjpeg, USER_JPEG_DataReady_Callback);
HAL_JPEG_RegisterEncodeCpltCallback(&hjpeg, USER_JPEG_EncodeComplete_Callback);
HAL_JPEG_RegisterDecodeCpltCallback(&hjpeg, USER_JPEG_DecodeComplete_Callback);
HAL_JPEG_RegisterErrorCallback(&hjpeg, USER_JPEG_Error_Callback);
|
Related concepts:
HAL JPEG unregister callback ¶
|
HAL1 |
HAL2 |
|
|---|---|---|
|
Function prototype |
HAL_JPEG_UnRegisterInfoReadyCallback(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_UnRegisterGetDataCallback(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_UnRegisterDataReadyCallback(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_UnRegisterCallback(JPEG_HandleTypeDef *hjpeg,
HAL_JPEG_CallbackIDTypeDef CallbackID)
|
unregister callback functions are removed use instead register callback functions with the default weak callback. |
|
Example usage |
JPEG_HandleTypeDef hjpeg;
HAL_JPEG_UnRegisterInfoReadyCallback(&hjpeg);
HAL_JPEG_UnRegisterGetDataCallback(&hjpeg);
HAL_JPEG_UnRegisterDataReadyCallback(&hjpeg);
HAL_JPEG_UnRegisterCallback(&hjpeg, HAL_JPEG_ENCODE_CPLT_CB_ID);
HAL_JPEG_UnRegisterCallback(&hjpeg, HAL_JPEG_DECODE_CPLT_CB_ID);
HAL_JPEG_UnRegisterCallback(&hjpeg, HAL_JPEG_ERROR_CB_ID);
|
hal_jpeg_handle_t hjpeg;
HAL_JPEG_RegisterInfoReadyCallback(&hjpeg, HAL_JPEG_InfoReadyCallback);
HAL_JPEG_RegisterGetDataCallback(&hjpeg, HAL_JPEG_GetDataCallback);
HAL_JPEG_RegisterDataReadyCallback(&hjpeg, HAL_JPEG_DataReadyCallback);
HAL_JPEG_RegisterEncodeCpltCallback(&hjpeg, HAL_JPEG_EncodeCpltCallback);
HAL_JPEG_RegisterDecodeCpltCallback(&hjpeg, HAL_JPEG_DecodeCpltCallback);
HAL_JPEG_RegisterErrorCallback(&hjpeg, HAL_JPEG_ErrorCallback);
|
Related concepts:
HAL JPEG callback pointers ¶
|
HAL1 |
HAL2 |
|---|---|
pJPEG_CallbackTypeDef()
|
hal_jpeg_cb_t()
|
pJPEG_InfoReadyCallbackTypeDef()
|
No specific pointer type for info ready callback in HAL2; use
|
pJPEG_GetDataCallbackTypeDef()
|
hal_jpeg_get_data_cb_t()
|
pJPEG_DataReadyCallbackTypeDef()
|
hal_jpeg_data_ready_cb_t()
|
HAL JPEG interrupt handler ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_JPEG_IRQHandler(JPEG_HandleTypeDef *hjpeg)
|
HAL_JPEG_IRQHandler(hal_jpeg_handle_t *hjpeg)
|